/**
  ******************************************************************************
  * @文件名           : fml_compensate.c
  * @作者             : citunhk
  * @功能介绍         : 温度补偿算法
  *	@日期             : 2023.01.11
  ******************************************************************************
  * @注意
  *
  * 本文件中不应调用上层文件
  *
  ******************************************************************************
  *更改记录
  *日期 修改人 修改内容
  *
  *
  *
  ******************************************************************************
  */
/* Private includes ----------------------------------------------------------*/
#include "fml_compensate.h"

/**
* @函数名	FML_MedianFilter
* @功能	    中位值平均滤波
* @入口参数	pData[] 滤波数组
*           size 滤波数据个数
* @返回值	滤波数值
*/
float FML_MedianFilter(float pData[], uint8_t size)
{
	float max,min;
	float sum;
    if(size>2)
    {
        max = pData[0];	//附初值
        min = max;
        sum = 0;

        for(uint8_t i = 0; i < size; i++)
        {
            sum += pData[i];		//求和
            if(pData[i] > max)
            {
                max = pData[i];		//一个循环之后max就是最大的值
            }
            if(pData[i] < min)
            {
                min = pData[i];   //一个循环之后min就是最小的值
            }
        }

        sum = sum - max - min;	//去掉最大的值和最小的值
        return sum / (size-2);		//对N-2个数求平均值
    }

    return 0;
}
